package com.hmy.cornpestdet.utils;

import com.hmy.cornpestdet.vo.MonthRiceDataVo;

import java.util.*;

public class MonthRiceDataListToObj {

    // 定义病害名称的固定顺序
    private static final List<String> DISEASES = Arrays.asList(
            "健康", "细菌性枯萎病", "细菌性条斑病", "劣种", "褐斑病",
            "稻瘟病", "稻粒黑粉病", "鞘腐病", "三种化学蛀茎虫", "蓟马", "飞虱"
    );

    public static List<List<Integer>>work(List<MonthRiceDataVo>monthRiceDataVoList){
        // 创建一个 List 来存储每种病害的统计数据
        List<List<Integer>> result = new ArrayList<>();

        // 初始化11个病害的统计列表，每个列表默认填充12个0，表示12个月
        for (int i = 0; i < DISEASES.size(); i++) {
            result.add(new ArrayList<>(Collections.nCopies(12, 0)));  // 每个病害12个月的默认数据是0
        }

        // 遍历原始数据，更新病害的统计
        for (MonthRiceDataVo data : monthRiceDataVoList) {
            String month = data.getMonth();
            String disease = data.getDisease();
            Integer count = data.getCount();

            // 查找病害在 DISEASES 中的索引
            int diseaseIndex = DISEASES.indexOf(disease);
            if (diseaseIndex != -1) {
                // 获取该病害对应的统计列表
                List<Integer> diseaseStats = result.get(diseaseIndex);

                // 计算月份的索引（假设月份格式是 "2024-01", "2024-02", ..., "2024-12"）
                int monthIndex = Integer.parseInt(month.split("-")[1]) - 1;

                // 更新该病害在该月的统计数据
                diseaseStats.set(monthIndex, count);
            }
        }

        return result;

    }

}
